from abc import ABC, abstractmethod
from typing import Dict, Optional

class Room(ABC):
    def __init__(self):
        self.completed = False
        self.content = self.initialize_content()
    
    @abstractmethod
    def initialize_content(self) -> Dict:
        pass
    
    @abstractmethod
    def on_enter(self, player) -> None:
        pass
    
    @abstractmethod
    def on_complete(self, player) -> None:
        pass 